/*  
 Copyright 2010 The 'Tribe.Blog' development team  
 (http://tribecache.codeplex.com/team/view)

 This library is licensed under the Ms-PL Microsoft Public License.  You should 
 have received a copy of the license along with the source code.  If not, an online copy
 of the license can be found at http://tribecache.codeplex.com/license.
*/

using System;

namespace Tribe.Cache.Storage
{
    /// <summary>
    /// A POCO (Plain Old C#/CLR Object) that represents a cache table entry
    /// </summary>
    internal class CacheTableItem
    {
        ///<summary>
        /// Cache item identifier
        ///</summary>
        public string EntryId { get; set; }
        ///<summary>
        /// Object stored in the cache
        ///</summary>
        public object Item { get; set; }
        ///<summary>
        /// Date and time the item will expire
        ///</summary>
        public DateTime DateOfExpiration { get; set; }
        ///<summary>
        /// Boolean to determine of the item has been taken from the cache or is the lastest instace passed from the delegate
        ///</summary>
        public bool IsDirty { get; set; }
        ///<summary>
        /// The number of seconds an item should be cached for
        ///</summary>
        public TimeSpan SpanToCache { get; set; }
    }
}